package com.gdteam.kernel.httpserver;

import java.util.List;

import com.gdteam.kernel.main.ServiceManager;

public interface HttpApplication {

    String FQN = "com.gdteam.kernel.httpserver.application";
    String SERVICE_MANAGER_KEY = "service_manager";
    
    /**
     * Get application name
     * @return
     */
    String getApplicationName();
    
    /**
     * Get the URI pattern that must match the relative part of the resource URI
     * @return
     */
    String getURIPattern();
    
    /**
     * Get uris which are available in this application
     * @return
     */
    List<String> getAvailableUris();
       
    /**
     * Indicates if the application is started. 
     * @return True if the application is started
     */
    public boolean isStarted();
    
    /**
     * Indicates if the application is stopped 
     * @return True if the application is stopped
     */
    public boolean isStopped();
    
    /**
     * Get associated service manager
     * @return
     */
    public ServiceManager getServiceManager();
    
}
